package task5_12;

import com.sun.org.apache.xpath.internal.SourceTree;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import javafx.scene.control.SpinnerValueFactory;
import task5_11_01.Student;

/**
 * Create by IntelliJ IDEA
 *
 * @author: jsonor
 * @date-Time: 2018/4/27 9:17
 * @description:
 */
public class Task5_12 {

  public static void main(String[] args) {

/* 1、接收用户输入一句英语，单词间以空格分隔
*  2、将这一串字符串以空格分隔出单词,保存在数组中
*  3、利用HashMap保存：单词做key，次数做value
*     循环单词数组：
*        若hashMap中不存在该单词，则加到该集合对象，且value为1
*        若存在该单词，则取出该key对应的值并+1
*   4、遍历HashMap，就得出每个单词出现的次数*/
    System.out.println("请输入一句英文，单词以空格分开：");
    Scanner scanner = new Scanner(System.in);
    //接受用户的字符串
    String sentence = scanner.nextLine();
    //以空格分隔字符串,结果保存在字符串
    String[] words = sentence.split(" ");

    //创建HashMap对象
    HashMap<String, Integer> hashMap = new HashMap<String, Integer>();

    //循环数组
    for (int i = 0; i < words.length; i++) {
      /*若HashMap中不存在该单词，则加到该集合对象，且value为1
      若存在该单词，则取出该key对应的值并+1*/
      //取出key(单词  数组中的每一个元素)
      String key = words[i];
      //集合中包含该单词
      if (hashMap.containsKey(words[i])) {
        Integer value = hashMap.get(words[i]);
        value = value + 1;
        //覆盖原有的（hashmap不能重复）
        hashMap.put(key, value);
      } else {
        //集合中不包含该单词，直接添加，value为1
        hashMap.put(key, 1);
      }
    }
    //遍历(通过键值对集合找键和值)
    Iterator iterator = hashMap.entrySet().iterator();
    while (iterator.hasNext()) {
        //得到的是每一个键值对
       Map.Entry<String,Integer> entry= (Entry<String, Integer>) iterator.next();
        //根据键值对，得到键和值
        String key=entry.getKey();
        Integer value=entry.getValue();
        System.out.println(key + ":" + value);
    }
  }
}